package cn.tedu.csmall.product.mapper;

import cn.tedu.csmall.product.pojo.entiry.Spu;
import cn.tedu.csmall.product.pojo.vo.*;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface SpuMapper extends BaseMapper<Spu> {


    /**
     * 根据id查询SPU标准信息
     * @param id  SPU ID
     * @return 查询SPU标准信息，如果没有匹配的数据，则返回null
     */
    SpuStandardVO getStandard(Long id);

    /**
     * 根据id查询SPU列表信息
     *
     * @return SPU列表信息
     */
    List<SpuListItemVO> getList();

    /**
     * 根据id查询SPU完整信息
     * @param id  SPU ID
     * @return    SPU完整信息
     */
    SpuFullInfoVO getFullInfo(Long id);

    /**
     * 根据id查询SPU编辑对话框的列表信息
     * @param id   SPU ID
     * @return     编辑对话框的列表信息
     */
    SpuEditListVO getEditInfo(Long id);

    /**
     * 根据SPU ID查询SKU列表
     * @param id          SPU ID
     * @return            参数ID下的SKU列表
     */
    List<SkuListItemVO> getSkuListBySpuList(Long id);

    /**
     * 根据类别id统计spu数量
     * @param     categoryId 类别ID
     * @return    关联了此类别的spu数量
     */
    int countByCategoryId(Long categoryId);
}
